package com.shxy.service;

import com.shxy.pojo.Material;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.List;

public interface IMaterialService {

    /**
     * 将指定目录下的文件导入数据库
     * @param path
     * @return
     */
    List<Material> importMaterials(String path, String suffix) throws IOException;

    /**
     * 判断文件类型
     * @param file
     * @return
     */
    String getFileType(File file);

    /**
     * 获取文件md5序列号
     * @param file
     * @return
     */
    String getFileMd5(File file) throws IOException;

    /**
     * 将文件转换成资源对象
     * @param file
     * @return
     */
    Material file2Material(File file) throws IOException;

    /**
     * 获取文件后缀名
     * @param fileName
     * @return
     */
    String getFileSuffix(String fileName);

    /**
     * 保存上传的文件
     * @param file
     * @return
     */
    Material uploadFile(MultipartFile file);

    /**
     * 统计资源被引用次数
     * @param materialId
     * @return
     */
    int refCount(int materialId);

    /**
     * 搜索资源
     * @param name
     * @param mtype
     * @return
     */
    List<Material> search(String name, String mtype);
}
